package usj.pop3.server.comandos;

import java.util.List;

import usj.pop3.client.ScanFiles;
import usj.pop3.server.ComandoPop3;
import usj.pop3.server.Mensaje;
import usj.pop3.server.SesionCliente;

public class CmdDele implements ComandoPop3 {
	public static String MSG_ERR_MESSAGE_NOT_DELETED
		= "-ERR message not deleted. The message doesn't exist";
	public static String MSG_OK_MESSAGE_DELETED = "+OK Message deleted";
    public String ejecutar(SesionCliente sesionCliente, String[] argumentos) {
    	String res = MSG_ERR_MESSAGE_NOT_DELETED;
    	if (sesionCliente.getEstado() == SesionCliente.Estados.AUTENTIFICADO) {
			if (argumentos[1] != null && argumentos[1].length() > 0) {
	    		String strNumerillo = argumentos[1]; //.substring(argumentos[0].indexOf(" ") + 1, argumentos[0].length());
	    		try {
					int numeroDeMensaje = Integer.parseInt(strNumerillo);
		    		ScanFiles scanFiles = new ScanFiles();
		    		List<Mensaje> mensajicos = scanFiles.listaMensajes(sesionCliente);
					if ((numeroDeMensaje > 0) && (numeroDeMensaje <= mensajicos.size())) {
						try {
							if (mensajicos.get(numeroDeMensaje-1).borraMensaje(sesionCliente)) {
								res = MSG_OK_MESSAGE_DELETED;	
							}
						} catch (Exception e) {
							res = MSG_ERR_MESSAGE_NOT_DELETED;
						}
			    	}
	    		} catch (NumberFormatException e) {
					res = MSG_ERR_MESSAGE_NOT_DELETED;
				}
			}
    	} else {
    		res = "-ERR user is not logged in.";
    	}
		return res;
    }
    public ComandoPop3 factory() {
		return new CmdDele();
    }
}
